package com.ruoyi.web.controller.shop.service;

import com.ruoyi.common.core.domain.Ztree;
import com.ruoyi.common.entity.VO.shop.ShopChangeBalanceVO;
import com.ruoyi.common.entity.VO.shop.ShopChangeParentVO;
import com.ruoyi.common.entity.VO.shop.ShopSearchVO;
import com.ruoyi.common.entity.VO.shop.ShopVO;

import java.util.List;

public interface IBackShopService {

    List<ShopVO> searchList(ShopSearchVO shopSearchVO);

    /**
     * 查询该店铺的所有下线店铺
     * @param parentId
     * @return
     */
    List<Long> searchChildIdList(Long parentId);

    /**
     * 根据店铺ID查询信息
     *
     * @param shopId 店铺ID
     * @return 店铺信息
     */
    ShopVO getShopInfoById(Long shopId);

    /**
     * 校验店铺名称是否唯一
     *
     * @param shopSearchVO 店铺查询信息
     * @return 结果
     */
    String checkShopNameUnique(ShopSearchVO shopSearchVO);

    /**
     * 校验店铺昵称是否唯一
     *
     * @param shopSearchVO 店铺查询信息
     * @return 结果
     */
    String checkShopCodeUnique(ShopSearchVO shopSearchVO);

    /**
     * 新增店铺
     *
     * @param shopVO 店铺信息
     * @return 结果
     */
    int insertShop(ShopVO shopVO);

    /**
     * 修改店铺信息
     *
     * @param shopVO 店铺信息
     * @return 结果
     */
    int updateShop(ShopVO shopVO);

    /**
     * 删除店铺
     *
     * @param id 店铺ID
     * @return 结果
     */
    int deleteShopById(Long id);

    /**
     * 根据店铺小程序appId查询信息
     *
     * @param appId 店铺小程序appId
     * @return 店铺信息
     */
    ShopVO getShopInfoByAppId(String appId);


    List<Ztree> selectShopTree(ShopSearchVO shopSearchVO);

    void changeParentHandle(ShopChangeParentVO shopChangeParentVO);
}
